package cn.flying.system.service.cm;

import java.util.List;

import cn.flying.system.common.vo.OrgTreeTableInfo;
import cn.flying.system.domain.cm.CmOrganization;
import cn.flying.base.common.vo.TreeSelectInfo;
import cn.flying.base.common.vo.XmSelect;

/**
 * @description: 组织机构接口服务
 * @author: lvyong
 * @date: 2022年05月26日 22:39
 * @version: 1.0
 */
public interface CmOrganizationService {

    /**
     * 获取组织机构tree数据
     *
     * @return
     */
    List<OrgTreeTableInfo> getOrganizationTreeTableList();

    /**
     * 组织结构树形下拉
     *
     * @return
     */
    List<TreeSelectInfo> getOrganizationTree();

    /**
     * 组织结构下拉
     *
     * @return
     */
    List<XmSelect> getOrganizationSelectList();

    /**
     * 根据主键id查询
     *
     * @param id
     * @return
     */
    CmOrganization getOrganizationById(Long id);

    /**
     * 根据组织编码查询
     *
     * @param orgCode
     * @return
     */
    CmOrganization getOrganizationByOrgCode(String orgCode);

    /**
     * 新增保存
     *
     * @param organization
     */
    void insertOrganization(CmOrganization organization);

    /**
     * 通过主键Id修改
     *
     * @param organization
     */
    void updateOrganizationById(CmOrganization organization);

    /**
     * 通过主键Id删除
     *
     * @param id
     */
    void deleteOrganizationById(Long id);

}
